package com.example.travel.Service;

import com.example.travel.domain.Users;
import com.example.travel.mapper.UsersMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 功能：
 * 作者：lln
 * 日期：2025/3/13 12:24
 */
@Service
public class UserServer {
    @Autowired
    private UsersMapper usersMapper;

    //注册
    public boolean register(Users user) {
        Users users = usersMapper.selbyname(user.getUsername());
        if (users == null) {
            return usersMapper.insertSelective(user) > 0;
        } else {
            return false;
        }
    }
    public Users seluser(String username, String password) {
        return usersMapper.selectuser(username, password);
    }

    public List<Users> seluserbyid(int [] userids){
        return usersMapper.seluserbyid(userids);
    }
    public boolean isFriend(String user1, String user2) {
        Users users = usersMapper.selbyname(user1);
        String friendid = users.getFriendids();
        if (friendid.contains(user2)) {
            return true;
        } else {
            return false;
        }
    }
    //添加好友
    public boolean addFriend(int userId, int friendId) {
        // 查询当前用户的 friendids
        Users user = usersMapper.selbyid(userId);
        if (user == null) {
            return false; // 用户不存在
        }

        String currentFriendIds = user.getFriendids();
        //如果已经是好友，则不添加
        if (currentFriendIds.contains(String.valueOf(friendId))) {
            return false;
        }
        if (currentFriendIds == null || currentFriendIds.isEmpty()) {
            currentFriendIds = String.valueOf(friendId); // 如果当前没有好友，直接设置为新好友的 ID
        } else {
            currentFriendIds += "," + friendId; // 将新好友的 ID 添加到现有列表中
        }

        // 更新数据库中的 friendids 字段
        return usersMapper.updateFriendIds(userId, currentFriendIds);
    }
    // 删除好友
    public boolean removeFriend(int userId, int friendId) {
        // 查询当前用户的 friendids
        Users user = usersMapper.selbyid(userId);
        if (user == null) {
            return false; // 用户不存在
        }

        String currentFriendIds = user.getFriendids();
        if (currentFriendIds == null || currentFriendIds.isEmpty()) {
            return false; // 当前用户没有好友
        }

        // 检查是否包含要删除的好友 ID
        String friendIdStr = String.valueOf(friendId);
        if (!currentFriendIds.contains(friendIdStr)) {
            return false; // 好友 ID 不存在
        }

        // 移除好友 ID
        currentFriendIds = currentFriendIds.replace(friendIdStr, "").replaceAll(",+", ",").replaceAll("^,|,$", "");

        // 更新数据库中的 friendids 字段
        return usersMapper.updateFriendIds(userId, currentFriendIds);
    }
}
